import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;

/** 
* @author 朱宏亮
* @version 创建时间：2017年12月1日 下午2:52:58 
* 类说明 
* 未整合spring
* 点对点消费者
*/
public class Consumer {
    private static final String USERNAME = ActiveMQConnection.DEFAULT_USER;//默认连接用户名
    private static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;//默认连接密码
    private static final String BROKEURL = ActiveMQConnection.DEFAULT_BROKER_URL;//默认连接地址
    
    
    public static void main(String[] args) {
        ConnectionFactory connectionFactory;//连接工厂
        Connection connection = null;//连接

        Session session;//会话 接受或者发送消息的线程
        Destination destination;//消息的目的地

        MessageConsumer messageConsumer;//消息的消费者

        //实例化连接工厂
        connectionFactory = new ActiveMQConnectionFactory(Consumer.USERNAME, Consumer.PASSWORD, Consumer.BROKEURL);

        try {
            //通过连接工厂获取连接
            connection = connectionFactory.createConnection();
            //启动连接
            connection.start();
            //创建session
            session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
            //创建一个连接HelloWorld的消息队列
            destination = session.createQueue("朱宏亮队列");
            //创建消息消费者
            messageConsumer = session.createConsumer(destination);

            while (true) {
                //receive的参数是获取消息等待的最大时间
                TextMessage textMessage = (TextMessage) messageConsumer.receive(10000);
                
                if(textMessage != null){
                    System.out.println("点对点队列收到的消息:" + textMessage.getText());
                    
                }else {
                    System.out.println("退出" );
                    //这里需要手动关闭连接，不然即使执行了break之后，连接还会存在，导致程序不结束。
                    session.close();
                    connection.close();
                    break;
                }
            }
            
        } catch (JMSException e) {
            e.printStackTrace();
        }

    }
    
    
    
    
    
    
    
    
    
}
 